home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / rbbs_pc / newu173c.zip / R-PCNEWU.MRG < prev    next >
Text File  |  1992-04-07  |  14KB  |  297 lines

  1. * ------------[ BLED merge (c) Ken Goosens ]-------------
  2. * Merge this against RBBS-PC.BAS to produce RBBS-PC.NEW
  3. * RBBS-PC.BAS:  Date 9-5-1991  Size 159962 bytes
  4. * ------------[ Created 02-29-1992 ]------------
  5.  
  6. 102 ZMsgDim = 99
  7.     WasMM = 999
  8.     WasBX = 75
  9.     WasJ = 60
  10.     REDIM ZOptSec(WasJ)
  11.     DIM ZWorkAra$(WasJ)
  12.     DIM ZGSRAra$(WasJ)
  13.     DIM ZCategoryName$(WasBX),ZCategoryCode$(WasBX),ZCategoryDesc$(WasBX)
  14.     DIM ZOutTxt$(ZMsgDim)                      ' Message line table
  15.     DIM ZUserIn$(ZMsgDim)                      ' Message line table
  16.     DIM ZMsgPtr(WasMM,2)                       ' Message pointers
  17.     CALL VarInit
  18.     ZWelcomeAboard = ZFalse                                          ' RM032401
  19.  
  20. 800 IF ZAdjustedSecurity THEN _                                      ' KG032501
  21.        GOSUB 5135
  22.     IF ZOrigCnfg$ = ZCurDef$ THEN _
  23.        ZMainUserFileIndex = ZUserFileIndex : _
  24.        ZOrigSec = ZUserSecLevel : _
  25.        ZUserSecSave = ZUserSecLevel : _
  26.        ZOrigUserName$ = ZActiveUserName$
  27.     ZTimesLoggedOn = CVI(MID$(ZUserOption$,1,2)) - _
  28.        ((ZOrigCnfg$ <> ZCurDef$ OR NOT ZSubBoard) AND _              ' KG022601
  29.         (NOT ZPrivateDoor) AND (NOT ZExitToDoors))
  30.     GOSUB 9500
  31.     IF (NOT ZExitToDoors) AND (NOT ZSubBoard) THEN _                 ' KG022601
  32.        CALL UpdtCalr (ZActiveUserName$ + " from " + ZWasCI$ + _
  33.                  " Lvl" + STR$(ZUserSecLevel) + " " + TIME$,2) : _   ' RM022301
  34.        CALL ExpiredPswd : _                                          ' RM031401
  35.        IF ZANSITest = ZTrue THEN _                                   ' RM022301
  36.           CALL UpdtCalr ("ANSI detected! " + TIME$,2)                ' RM022301
  37.     PrevLastOn$ = ZLastDateTimeOn$
  38.     IF ZLocalUser THEN _
  39.        ZTalkToModemAt$ = "9600" : _
  40.        ZBaudParity$ = "9600 BPS,N,8,1" : _                           ' DA062001
  41.        ZModemInitBaud$ = "9600" : _
  42.        ZSnoop = ZTrue : _
  43.        ZLineFeeds = ZTrue
  44.     CALL SetCrLf
  45.     CALL SetPrompt
  46.     CALL XferType (2,ZTrue)
  47.     IF NOT ZSubBoard THEN _                                          ' KG022601
  48.        BoardCheckDate$ = PrevLastOn$
  49.     CALL SetSysOp                                                    ' KG022601
  50.     IF ZWasA THEN _                                                  ' KG060101
  51.        ZActiveUserName$ = "SYSOP" : _
  52.        ZFirstName$ = "SysOp"                                         ' KG011401
  53.     IF ZExitToDoors OR ZSubBoard THEN _                              ' KG022601
  54.        GOTO 815
  55.     GOSUB 465
  56.     IF (ZEightBit AND _
  57.        ZAutoDownDesired) OR _
  58.        ZAskID THEN _
  59.        CALL TestUser
  60.     CALL QuickTPut1 ("Logging " + ZActiveUserName$)
  61.     CALL Talk (1,ZOutTxt$)
  62.     Temp$ = STR$(ZBaudTest!) + MID$(ZBaudParity$,INSTR(ZBaudParity$," B")) ' KG081902
  63.     CALL QuickTPut1 ("RBBS-PC " + ZVersionID$ + " Node " + ZNodeID$ + _
  64.                 ", Running at" + Temp$)                              ' TC090101
  65.     CALL QuickTPut1 ("The Small Time BBS - Mods by RM")              ' RM022592
  66.     CALL SkipLine (1)
  67.     Attempts = 0
  68.     ZWasZ$ = ZActiveUserName$ + _                                    ' KG052701
  69.             " on at " + _                                            ' KG052701
  70.             ZCurDate$ + _                                            ' KG052701
  71.             ", " + _                                                 ' KG052701
  72.             ZTime$ + _                                               ' KG052701
  73.             " from " + _                                             ' KG052701
  74.             ZWasCI$ + _                                              ' KG052701
  75.             "," + Temp$                                              ' KG081902
  76.      ZWasNG$ = ZWasZ$ + SPACE$(128 - LEN(ZWasZ$))                    ' KG090401
  77. '
  78. ' *  ALWAYS RECORD THE HASH/INDIVIDUATING FIELD TO EACH RECORD LOGGED OUT
  79. '
  80.      WasX$ = "{" + _                                                 ' KG052701
  81.           HashValue$ + _                                             ' KG052701
  82.           "/" + _                                                    ' KG052701
  83.           ZIndivValue$ + _                                           ' RC050901
  84.           "}"                                                        ' KG052701
  85.      IF LEN(ZWasZ$) < 65 THEN _                                      ' KG052701
  86.         WasX = 65 _                                                  ' KG052701
  87.      ELSE WasX = LEN(ZWasZ$) + 2                                     ' KG052701
  88.      MID$(ZWasNG$,WasX) = WasX$                                      ' KG052701
  89.      CALL Printit ("  " + ZWasZ$)                                    ' KG052701
  90.      IF ZNewUser THEN _                                              ' KG052701
  91.         CALL UpdtCalr ("NEWUSER",1) : _                              ' KG052701
  92.         CALL FindFile ("WELCOME.DEF",ZWelcomeAboard) : _             ' RM032401
  93.         CALL Muzak (2)                                               ' KG052701
  94.  
  95. 900 IF ZWelcomeAboard THEN _                                         ' RM032401
  96.        GOSUB 1800 : _                                                ' RM032401
  97.        CALL UpdtCalr ("New user welcome message sent!",1) : _        ' RM032401
  98.        WelcomeAboard = ZWelcomeAboard : _                            ' RM032402
  99.        ZWelcomeAboard = ZFalse                                       ' RM032401
  100.     ZNewUser = ZFalse                                                ' RM032401 Old line number 900
  101.     ActionFlag = (ZLogonMailLevel$ = "S")
  102.     LogonMailNew = (ZLogonMailLevel$ = "N")
  103.  
  104. 1800 IF ZWelcomeAboard THEN _                                        ' RM032401
  105.         MsgTo$ = ZActiveUserName$ : _                                ' RM032401
  106.         OrigSubject$ = "Welcome Aboard" : _                          ' RM032401
  107.         Subject$ = OrigSubject$ : _                                  ' RM032401
  108.         CALL OpenMsg : _                                             ' RM032401
  109.         FIELD 1, 128 AS ZMsgRec$ : _                                 ' RM032401
  110.         ZWasZ$ = ZActiveMsgFile$ : _                                 ' RM032401
  111.         ZMsgHeader$ = "Message" : _                                  ' RM032401
  112.         GOTO 2002                                                    ' RM032401
  113.      MsgTo$ = "SYSOP"
  114.      OrigSubject$ = "COMMENT"
  115.      Subject$ = OrigSubject$
  116.      GOSUB 1893
  117.  
  118. 2000 QuotedReply = ZFalse
  119.      MsgFrom$ = ZActiveUserName$
  120.      SysopMsg = ZFalse
  121.      GOSUB 1893
  122. 2001 IF (LowMsgNumber > 0 AND ActiveMessages >= MaxMsgs) _           ' KG073102
  123.         OR HighMsgNumber >= 9999 THEN _
  124.         IF ZActiveMessageFile$ = ZMainMsgFile$ AND _
  125.            ActiveMessages = 1 THEN _
  126.            GOTO 5300 _
  127.         ELSE ZOutTxt$ = "Sorry, the Message Base is Full.  Try Again Tomorrow." : _ ' TC090101
  128.              GOSUB 12975 : _
  129.              GOTO 3650
  130. 2002 IF ZWelcomeAboard THEN _                                        ' RM032401
  131.         IF (LowMsgNumber > 0 AND ActiveMessages >= MaxMsgs) _        ' RM032401
  132.         OR HighMsgNumber >= 9999 THEN _                              ' RM032401
  133.         RETURN _                                                     ' RM032401
  134.         ELSE _                                                       ' RM032401
  135.         GOTO 2020                                                    ' RM032401
  136. 2006 IF NOT (ZReply OR MsgFwd) THEN _
  137.         MsgPswd$ = ""
  138.      ZSysopComment = ZFalse
  139.      IF ZReply OR MsgFwd THEN SaveAnsIndex = ZAnsIndex
  140.      IF MsgFwd OR NOT ZReply THEN _
  141.         IF ZUserSecLevel >= ZOptSec(5) THEN MsgTo$ = ""
  142.  
  143. 2020 CALL MessageTo (HighestUserRecord,MsgTo$,MsgFrom$,RcvrRecNum,Found)
  144.      IF ZWelcomeAboard THEN _                                        ' RM032401
  145.         GOTO 2335                                                    ' RM032401
  146.      IF MsgTo$ = "" THEN _
  147.         RETURN
  148.      IF ZSysopComment OR SysopMsg THEN _
  149.         GOTO 2100
  150.      IF ZReply OR MsgFwd THEN _
  151.         Found = ZTrue : _
  152.         CALL Trim (MsgTo$):  _
  153.         GOTO 2035 _
  154.      ELSE Subject$ = ""
  155.      GOSUB 2065
  156. 2035 IF QuotedReply THEN _
  157.         RETURN
  158.      GOTO 2100
  159.  
  160. 2332 IF ZLinesInMsg < 1 THEN _
  161.         ZLinesInMsg = 1
  162.      GOTO 2127
  163. 2335 WasX = ZLinesInMsg
  164.      CALL MsgImport (ZMaxMsgLines,ZRightMargin,ZLinesInMsg,ZOutTxt$())
  165.      IF ZWelcomeAboard THEN _                                        ' RM032401
  166.         GOTO 3406                                                    ' RM032401
  167.      IF ZLinesInMsg > WasX THEN _
  168.         GOTO 3000 _
  169.      ELSE GOTO 2300
  170.  
  171. 3405 SaveReplyStatus = ZReply
  172.      ZReply = ZTrue
  173.      IF SysopMsg THEN _
  174.         MsgPswd$ = "^READ^" _
  175.      ELSE CALL MsgProt (MsgTo$,Found,MsgPswd$)
  176. 3406 IF ZWelcomeAboard THEN _                                        ' RM032401
  177.         SaveReplyStatus = ZReply : _                                 ' RM032401
  178.         ZReply = ZTrue : _                                           ' RM032401
  179.         MsgFrom$ = "SYSOP" : _                                       ' RM032401
  180.         MsgPswd$ = "^READ^"                                          ' RM032401
  181.      SysopMsg = ZFalse
  182.      ZReply = SaveReplyStatus
  183.      GOSUB 4910
  184.      MsgRecSave$ = ZMsgRec$
  185.      MsgCorrected = ZFalse
  186.      GOSUB 23100
  187.      IF ZWelcomeAboard THEN _                                        ' RM032401
  188.         GOTO 3407                                                    ' RM032401
  189.      ZOutTxt$ = "Adding new msg #" + _
  190.           STR$(HighMsgNumber + 1)
  191.      IF NOT ZLocalUser THEN _
  192.         CALL UpdtCalr (ZOutTxt$,1)
  193.      GOSUB 12978
  194. 3407 ZWasSL = 0                                                      ' RM032401
  195.      ZWasN$ = ""
  196.      ZLastIndex = 0
  197.      HighMsgNumber = HighMsgNumber + 1
  198. 3410 ActiveMessages = ActiveMessages + 1
  199.      MsgNum$ = STR$(HighMsgNumber) + _
  200.                        SPACE$(5 - LEN(STR$(HighMsgNumber)))
  201.      IF MsgPswd$ = "^READ^" THEN _
  202.         MID$(MsgNum$,1,1) = "*" : _
  203.         SecForMsg = ZPrivateReadSec _
  204.      ELSE SecForMsg = ZPublicReadSec
  205. 3460 IF ZWelcomeAboard THEN _                                        ' RM032401
  206.         MsgFrom$ = LEFT$(MsgFrom$ + SPACE$(31),31) : _               ' RM032401
  207.         GOTO 3461                                                    ' RM032401
  208.      IF NOT MsgFwd THEN _                                            ' RM032401 Old line number 3460
  209.         MsgFrom$ = LEFT$(ZActiveUserName$ + SPACE$(31),31) _
  210.      ELSE _
  211.         MsgFrom$ = LEFT$(MsgFrom$ + SPACE$(31),31)
  212. 3461 MsgTo$ = LEFT$(MsgTo$ + SPACE$(31),31)                          ' RM032401
  213.      MID$(MsgTo$,23,8) = TIME$
  214.      Subject$ = LEFT$(OrigSubject$ + SPACE$(25),25)
  215.      MsgPswd$ = LEFT$(MsgPswd$ + SPACE$(15),15)
  216.      IF QuotedReply AND _
  217.         ZLinesInMsg > ZMaxMsgLines THEN _
  218.            ZLinesInMsg = ZMaxMsgLines
  219.      FOR WasJ = 1 TO ZLinesInMsg
  220.         ZOutTxt$(WasJ) = ZOutTxt$(WasJ) + _
  221.                 CHR$(227)
  222.         ZWasSL = ZWasSL + LEN(ZOutTxt$(WasJ))
  223.      NEXT
  224.      IF ZWasSL MOD 128 = 0 THEN _
  225.         ZWasN$ = STR$(ZWasSL \ 128 + 1) _
  226.      ELSE ZWasN$ = STR$(ZWasSL \ 128 + 2)
  227. 3530 Temp = ZNextMsgRec
  228.      ZNextMsgRec = Temp + VAL(ZWasN$)
  229.      LSET ZMsgRec$ = MsgRecSave$
  230.      GOSUB 24000
  231.      GET 1,Temp
  232.      ZMsgPtr(ActiveMessages,1) = Temp
  233.      ZMsgPtr(ActiveMessages,2) = HighMsgNumber
  234.      LSET ZMsgRec$ = MsgNum$ + _
  235.                      MsgFrom$ + _
  236.                      MsgTo$ + _
  237.                      ZCurDate$ + _
  238.                      Subject$ + _
  239.                      MsgPswd$ + _
  240.                      ZActiveMessage$ + _
  241.                      ZWasN$ + _
  242.                      SPACE$(4 - LEN(ZWasN$)) + _
  243.                      MKI$(SecForMsg)
  244.      PUT 1,Temp
  245.      ZWasN$ = ""
  246.      NumDots = 0
  247.      FOR WasJ = 1 TO ZLinesInMsg
  248.         IF NOT ZWelcomeAboard THEN _                                 ' RM032401
  249.         CALL MarkTime (NumDots)
  250.         ZWasN$ = ZWasN$ + _
  251.              ZOutTxt$(WasJ)
  252.         IF LEN(ZWasN$) > 127 THEN _
  253.            LSET ZMsgRec$ = ZWasN$ : _
  254.            PUT 1 : _
  255.            ZWasN$ = MID$(ZWasN$,129)
  256. 3630 NEXT
  257.      IF LEN(ZWasN$) > 0 THEN _
  258.         LSET ZMsgRec$ = ZWasN$ : _
  259.         PUT 1
  260.      REDIM ZOutTxt$(ZMsgDim)
  261.      IF MsgCorrected THEN _
  262.         MsgCorrected = ZFalse : _
  263.         ActionFlag = ZTrue : _
  264.         CALL SkipLine (1) : _
  265.         GOSUB 1900
  266. 3640 CALL SkipLine (1)
  267.      GET 1,1
  268.      GOSUB 12985
  269. ' ---[ notify receiver that has new mail waiting ]---
  270.      IF RcvrRecNum > 0 THEN _
  271.         UserFileIndexSave = ZUserFileIndex : _
  272.         UserRecordHold$ = ZUserRecord$ : _
  273.         ZUserFileIndex = RcvrRecNum : _
  274.         GOSUB 12989 : _
  275.         GET 5, RcvrRecNum : _
  276.         WasX = CVI(MID$(ZUserRecord$,57,2)) : _
  277.         MID$(ZUserRecord$,57,2) = MKI$(WasX OR 512) : _
  278.         PUT 5, RcvrRecNum : _
  279.         GOSUB 12991 : _
  280.         ZUserFileIndex = UserFileIndexSave : _
  281.         LSET ZUserRecord$ = UserRecordHold$ : _
  282.         IF NOT ZWelcomeAboard THEN _                                 ' RM032401
  283.            CALL QuickTPut ("New Mail Indicator Updated.",1) : _      ' TC090101
  284.         RcvrRecNum = 0
  285.      CALL SkipLine (1)                                               ' TC090101
  286. 3650 QuotedReply = ZFalse
  287.      MsgLockLines = 0
  288.      IF ZWelcomeAboard THEN _                                        ' RM032401
  289.         RETURN                                                       ' RM032401
  290.      IF ZReply OR MsgFwd THEN _
  291.         ZReply = ZFalse : _
  292.         ZAnsIndex = SaveAnsIndex : _
  293.         GOTO 5344
  294.      IF ZGetExtDesc THEN _
  295.         ZLinesInMsg = 0 : _
  296.         RETURN
  297.